package com.cyf.wechat.service;

import java.util.Date;

/**
 * 向微信用户发送消息
 *
 * @author cage
 */
public interface WechatSendService {
    /**
     * 车辆入场时 发送消息给微信用户
     *
     * @param apiUserId
     * @param openId
     * @param plate     车牌号码
     * @param parking   车场名称
     * @param time      入场时间
     */
    void carIn(Integer apiUserId, String openId, String plate, String parking, String time);

    /**
     * 微信支付完成 发送消息给微信用户
     *
     * @param apiUserId
     * @param plate     车牌号码
     * @param parking   车场名称
     * @param openid    微信用户唯一openId
     */
    void pay(Integer apiUserId, String plate, String parking, String openid, String payTime, Integer fee);

    /**
     * 车辆出场时 发送消息给微信用户
     *
     * @param apiUserId
     * @param openid    微信用户唯一openId
     * @param plate     车牌号码
     * @param parking   车场名称
     * @param stayTime  停留时间
     * @param outTime   出场时间
     * @param fee       费用
     */
    void carOut(Integer apiUserId, String openid, String plate, String parking, String stayTime,
                String outTime, Integer fee);

    /**
     * 向微信用户发送月卡过期消息
     *
     * @param apiUserId
     * @param openid    微信用户唯一openId
     * @param plate     车牌号码
     * @param parking   车场名称
     * @param endTime   截止时间
     * @param cardNo    卡号（暂用微信用户的id）
     */
    boolean sendExpiredWarning(Integer apiUserId, String openid, String plate, String parking, String endTime, String cardNo);

    /**
     * 向微信用户发送人管平台统计数据
     *
     * @param openid         微信用户唯一openId
     * @param deptInfo       部门信息
     * @param employeeInNum  入场人数
     * @param employeeOutNum 出场人数
     * @param time           统计时间
     */
    void sendStatisticalData(String openid, String deptInfo, int employeeInNum, int employeeOutNum, String time);

    /**
     * 受访者邀请访客
     *
     * @param apiUserId
     * @param openid            访客openid
     * @param intervieweeMobile 受访者手机号
     * @param inviteTime        邀请时间
     */
    void invite(Integer apiUserId, String openid, String intervieweeMobile, Date inviteTime);

    /**
     * @param apiUserId
     * @param openid          受访者openid
     * @param name            访客姓名
     * @param memo            访客留言
     * @param visitorRecordId 访客记录id
     */
    void applyVisit(Integer apiUserId, String openid, String name, String memo, int visitorRecordId);

    /**
     * 允许访问
     *  @param intervieweeName     被访客姓名
     * @param apiUserId
     * @param openid
     * @param visitorName
     * @param intervieweeMobile
     * @param estimateVisitorTime
     * @param endTime
     * @param orderNo
     */
    void visitPass(String intervieweeName, Integer apiUserId, String openid, String visitorName, String intervieweeMobile, String estimateVisitorTime, String endTime, String orderNo);

    /**
     * 访问被拒
     *  @param intervieweeName
     * @param apiUserId
     * @param openid
     * @param visitorName
     * @param intervieweeMobile
     * @param estimateVisitorTime
     * @param endTime
     * @param rejectMemo
     * @param visitMemo
     */
    void visitReject(String intervieweeName, Integer apiUserId, String openid, String visitorName, String intervieweeMobile, String estimateVisitorTime, String endTime, String rejectMemo, String visitMemo);
}